﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayDiagonalCount
{
    class Program
    {
        //Пользователь задает размер квадратного двухмерного массива.Массив заполняется
        //случайными числами в диапазоне от -100 до 100. Найти сумму элементов расположенных на 
        //главной диагонале. (i= j)
        static void Main(string[] args)
        {
            {

                Console.WriteLine("Введите размер квадратного массива");
                Console.WriteLine();
                int razmer = Int32.Parse(Console.ReadLine());
                Console.WriteLine("_________________________________________");
                int[,] testArray = CreateRandomArray(razmer, razmer, -100, 100);
                PrintArray(testArray);
                Console.WriteLine("_________________________________________");
                SumMainDiagonal(testArray);
                Console.ReadKey();
            }
        }
        static int[,] CreateRandomArray(int rowCount, int columnCount, int minValue, int maxValue)
        {
            int[,] newArray = new int[rowCount, columnCount];
            Random rnd = new Random();

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    newArray[i, j] = rnd.Next(minValue, maxValue);

                }

            }
            return newArray;


        }
        static void PrintArray(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0} \t ", arrayForPrint[i, j]);
                }
                Console.WriteLine();

            }

        }
      
        // Вычисление суммы элементов, расположенных на главной диагали

        static void SumMainDiagonal(int[,] array)
        {

            int sum = 0;

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {

                    if (i == j)
                    {
                        sum = sum + array[i, j];
                    }
                
                }
            }
            Console.WriteLine("Сумма главной диагонали составляет {0}", sum);

        }
    }
}